Clean up code in gtk_tree_store_set_n_columns()
authorKristian Rietveld <kris@gtk.org>
Sun, 23 Aug 2009 13:29:11 +0000 (15:29 +0200)
committerKristian Rietveld <kris@gtk.org>
Sun, 23 Aug 2009 20:06:15 +0000 (22:06 +0200)
Clean up GtkTreeStore likewise as Benjamin Otte has done for
GtkListStore in commit 3c97f037.

gtk/gtktreestore.c

index 97084084fb458261d2381bc7f24f80b5f1999163..30ff14f8105a71afd64082450f160f9dbc912d85 100644 (file)
@@ -358,30 +358,20 @@ static void
 gtk_tree_store_set_n_columns (GtkTreeStore *tree_store,
                              gint          n_columns)
 {
-  GType *new_columns;
+  int i;
 
   if (tree_store->n_columns == n_columns)
     return;
 
-  new_columns = g_new0 (GType, n_columns);
-  if (tree_store->column_headers)
-    {
-      /* copy the old header orders over */
-      if (n_columns >= tree_store->n_columns)
-       memcpy (new_columns, tree_store->column_headers, tree_store->n_columns * sizeof (gchar *));
-      else
-       memcpy (new_columns, tree_store->column_headers, n_columns * sizeof (GType));
-
-      g_free (tree_store->column_headers);
-    }
+  tree_store->column_headers = g_renew (GType, tree_store->column_headers, n_columns);
+  for (i = tree_store->n_columns; i < n_columns; i++)
+    tree_store->column_headers[i] = G_TYPE_INVALID;
+  tree_store->n_columns = n_columns;
 
   if (tree_store->sort_list)
     _gtk_tree_data_list_header_free (tree_store->sort_list);
 
   tree_store->sort_list = _gtk_tree_data_list_header_new (n_columns, tree_store->column_headers);
-
-  tree_store->column_headers = new_columns;
-  tree_store->n_columns = n_columns;
 }
 
 /**